In the field of digital communications, digital information is typically prepared for transmission through a channel by encoding it. The encoded data is then used to modulate a transmission to the channel. A transmission received from the channel is then typically demodulated and decoded to recover the original information.
The encoding of the digital data serves to improve communication performance so that the transmitted signals are less corrupted by noise, fading, or other interference associated with the channel. The term "channel" can include media such as transmission lines, wireless communication and information storage devices such as magnetic disc drives. In the case of information storage devices, the signal is stored in the channel for a period of time before it is accessed or received. Encoding can reduce the probability of noise being introduced into a recovered digital signal when the encoding is adapted to the known characteristics of the data and its interaction with known noise characteristics of a communication channel.
In typical encoding arrangement, data words of m data bits are encoded into larger code words of n code bits, and the ratio m/n is known as the code rate of the encoding arrangement. Decreasing the code rate improves decoding and can also improve error correction, however, decreased code rate also increases energy consumption and slows communication.
Encoding for magnetic media also typically includes non-return-to-zero-invert-on-ls (NRZI) coding and resynchronization of the received signal using a phase locked loop (PLL). In order to ensure adequate synchronization of the PLL, a run length limit (RLL) of the number "k" of consecutive zeros is an integral part of the encoding. In systems where two interleaved subsequences are encoded to produce two smaller code words for detection by a Viterbi detector, the maximum run length or number "i" of zeros in each of the bitwise interleaved sub-sequence is also limited to reduce delay in the Viterbi detector. The number "w" of ones in a code word affects energy consumption and is known as a Hamming weight. These constraints improve performance, but also tend to eliminate a large number of available code words, which can tend to require a lower code rate. Finding an efficient set of constraints "k", "i", and "w" within a suitable code rate is complex for long digital words.
In particular, it is found that transmission of relatively long digital words representing 24 bits of information through a channel that introduces channel noise in the form of irregular timing of received bits and unpredictable short bursts of bit errors is a problem. This problem is present in magnetic disc drives and can be present in other types of channels as well.